package sistema.controleVendas.persistencia;

import java.util.List;

import javax.persistence.EntityManager;

import sistema.controleVendas.entidades.Estado;
import sistema.controleVendas.entidades.Pessoa;
import sistema.controleVendas.entidades.PessoaFisica;
import sistema.controleVendas.entidades.PessoaJuridica;


public class GerenciarClientesPersistencia {
	EntityManager em = Conexao.contectar();

	public GerenciarClientesPersistencia(){}

	public void adicionarCliente(Pessoa pessoa){
		em.getTransaction().begin();
		em.persist(pessoa);
		em.getTransaction().commit();
	}

	public List<PessoaFisica> listarPessoas(){
		List<PessoaFisica> pessoas = em.createQuery("select e from PessoaFisica e where e.interesse.id = :param").setParameter("param", 1).getResultList();
		return pessoas;
	}

	public List<PessoaJuridica> listarPessoasJ(){
		List<PessoaJuridica> pessoas = em.createQuery("select e from PessoaJuridica e").getResultList();
		return pessoas;
	}
	public void removerCliente(Pessoa pessoa){
		em.getTransaction().begin();
		em.remove(pessoa);
		em.getTransaction().commit();
	}
	public PessoaFisica buscarCliente(Object parametro, String campo){
		PessoaFisica pessoa = new PessoaFisica();
		em.getTransaction().begin();
		pessoa = (PessoaFisica)em.createQuery("Select p from PessoaFisica p where p."+campo+"=:param").
		setParameter("param", parametro).getSingleResult();
		em.getTransaction().commit();
		return pessoa;
	}



}
